package leetCode.q42;

public class Me {
    public int trap(int[] height) {
        int len = height.length;
        int level = 1;
        int res = 0;
        /*
        从第一层开始 [1,n-2] 判断level>height[i], 两侧有>=level的墙
         */
        int max = 0;
        for(int i=0;i<len;i++){
            max = Math.max(max,height[i]);
        }

        for(;level<=max;level++){
            for(int i = 1;i<=len-2;i++){
                if(judge(height,len,i,level)) res++;
            }
        }

        return res;
    }

    public static boolean judge(int[] arr,int len,int i,int level){
        // 判断level层,i位置是否能盛放水
        if(arr[i]>=level) return false;

        boolean flag = false;
        //判断两侧是否存在墙
        for(int j = i-1;j>=0;j--){
            if(arr[j]>=level) {
                flag = true;
                break;
            }
        }
        if(!flag) return false;

        flag = false;
        //判断两侧是否存在墙
        for(int j = i+1;j<len;j++){
            if(arr[j]>=level) {
                flag = true;
                break;
            }
        }
        if(!flag) return false;

        return true;
    }
}
